'use strict'

const path = require('path')
const WebpackCdnPlugin = require('webpack-cdn-plugin');

module.exports = {
    publicPath: '/',
    outputDir: 'dist',
    assetsDir: 'static',
    // 禁用eslint
    lintOnSave: false,
    // 不生成map文件
    productionSourceMap: false,

    devServer: {
        // 默认启动serve 打开index页面
        index: 'index.html',
        open: false,
        host: '',
        port: 8080,
        https: false,
        hotOnly: false,
        // proxy: {

        // },
    },

    // 扩展webpack配置
    configureWebpack: config => {

        let baseConfig = {
            resolve: {
                alias: {
                    '@': path.join(__dirname, 'src'),
                    'components': path.join(__dirname, 'src/components'),
                    'libs': path.join(__dirname, 'src/libs'),
                    'assets': path.join(__dirname, 'src/assets'),
                }
            }
        }

        // 打包生成源码时，使用cdn
        if(process.env.NODE_ENV == 'production'){
            baseConfig.plugins = [
                new WebpackCdnPlugin({
                    // 多模块备注
                    // modules: {
                    //     'index': [
                    //         {
                    //             name: 'vue',
                    //             var: 'Vue',
                    //             path: 'https://cdn.bootcss.com/vue/2.5.2/vue.min.js',
                    //         },
                    //     ]
                    // },
                    modules: [
                        {
                            name: 'vue',
                            var: 'Vue',
                            path: 'https://cdn.bootcss.com/vue/2.6.6/vue.min.js',
                        },
                        {
                            name: 'vue-router',
                            var: 'VueRouter',
                            path: 'https://cdn.bootcss.com/vue-router/3.0.2/vue-router.min.js',
                        }
                    ],
                    prodUrl: ':path'
                })
            ]

            // return {
            //     plugins: [
            //           new WebpackCdnPlugin({
            //             // modules: {
            //             //     'index': [
            //             //         {
            //             //             name: 'vue',
            //             //             var: 'Vue',
            //             //             path: 'https://cdn.bootcss.com/vue/2.5.2/vue.min.js',
            //             //         },
            //             //     ]
            //             // },
            //             modules: [
            //                 {
            //                     name: 'vue',
            //                     var: 'Vue',
            //                     path: 'https://cdn.bootcss.com/vue/2.6.6/vue.min.js',
            //                 },
            //                 {
            //                     name: 'vue-router',
            //                     var: 'VueRouter',
            //                     path: 'https://cdn.bootcss.com/vue-router/3.0.2/vue-router.min.js',
            //                 }
            //             ],
            //             prodUrl: ':path'
            //         })
            //     ]
            // }
        }

        return baseConfig
    },
}